<!--
 * @Description: 文件描述
 * @Author: 陈三愿
 * @Date: 2025-09-14 00:15:27
 * @LastEditTime: 2025-09-15 01:00:00
-->
<script setup lang="ts">
import { ref, onMounted } from "vue";

// 主题切换功能
const currentTheme = ref("light");

// 页面加载时初始化主题
onMounted(() => {
  // 从本地存储获取主题设置，默认为 light
  const savedTheme = localStorage.getItem("theme") || "light";
  // 设置 HTML 元素的 data-theme 属性
  document.documentElement.setAttribute("data-theme", savedTheme);
  // 更新响应式变量
  currentTheme.value = savedTheme;
  // 添加主题初始化标记，避免样式加载时的闪烁问题
  document.documentElement.classList.add('theme-initialized');
});

// 主题切换函数
const handleChangeTheme = () => {
  // 在 light 和 ywz-theme 之间切换
  const newTheme = currentTheme.value === "light" ? "ywz-theme" : "light";

  // 更新响应式变量
  currentTheme.value = newTheme;

  // 更新 HTML 元素的 data-theme 属性
  document.documentElement.setAttribute("data-theme", newTheme);

  // 保存到本地存储
  localStorage.setItem("theme", newTheme);

  console.log(`主题已切换到: ${newTheme}`);
};
</script>

<template>
  <NuxtLayout>
    <NuxtPage />
    <div class="container mx-auto p-4">
      <!-- <div class="container mx-auto p-4">
      <h1 class="text-2xl font-bold mb-4">欢迎使用 Nuxt DaisyUI</h1>

      <div class="card bg-base-100 shadow-xl mb-6">
        <div class="card-body">
          <h2 class="card-title">示例内容</h2>
          <p>这是一个使用 Nuxt 和 DaisyUI 构建的应用程序。</p>
          <p>现在你可以看到我们的布局包含了顶部面包屑和可折叠的左侧菜单栏。</p>
        </div>
      </div> -->

      <!-- 主题切换按钮 -->
      <div class="flex justify-center my-6">
        <label class="swap swap-rotate">
          <input type="checkbox" @click="handleChangeTheme" />
          <svg
            class="swap-on fill-current w-8 h-8"
            xmlns="http://www.w3.org/2000/svg"
            viewBox="0 0 24 24"
          >
            <path
              d="M5.64,17l-.71.71a1,1,0,0,0,0,1.41,1,1,0,0,0,1.41,0l.71-.71A1,1,0,0,0,5.64,17ZM5,12a1,1,0,0,0-1-1H3a1,1,0,0,0,0,2H4A1,1,0,0,0,5,12Zm7-7a1,1,0,0,0,1-1V3a1,1,0,0,0-2,0V4A1,1,0,0,0,12,5ZM5.64,7.05a1,1,0,0,0,.7.29,1,1,0,0,0,.71-.29,1,1,0,0,0,0-1.41l-.71-.71A1,1,0,0,0,4.93,6.34Zm12,.29a1,1,0,0,0,.7-.29l.71-.71a1,1,0,1,0-1.41-1.41L17,5.64a1,1,0,0,0,0,1.41A1,1,0,0,0,17.66,7.34ZM21,11H20a1,1,0,0,0,0,2h1a1,1,0,0,0,0-2Zm-9,8a1,1,0,0,0-1,1v1a1,1,0,0,0,2,0V20A1,1,0,0,0,12,19ZM18.36,17A1,1,0,0,0,17,18.36l.71.71a1,1,0,0,0,1.41,0,1,1,0,0,0,0-1.41ZM12,6.5A5.5,5.5,0,1,0,17.5,12,5.51,5.51,0,0,0,12,6.5Zm0,9A3.5,3.5,0,1,1,15.5,12,3.5,3.5,0,0,1,12,15.5Z"
            />
          </svg>
          <svg
            class="swap-off fill-current w-8 h-8"
            xmlns="http://www.w3.org/2000/svg"
            viewBox="0 0 24 24"
          >
            <path
              d="M21.64,13a1,1,0,0,0-1.05-.14,8.05,8.05,0,0,1-3.37.73A8.15,8.15,0,0,1,9.08,5.49a8.59,8.59,0,0,1,.25-2A1,1,0,0,0,8,2.36,10.14,10.14,0,1,0,22,14.05,1,1,0,0,0,21.64,13Zm-9.5,6.69A8.14,8.14,0,0,1,7.08,5.22v.27A10.15,10.15,0,0,0,17.22,15.63a9.79,9.79,0,0,0,2.1-.22A8.11,8.11,0,0,1,12.14,19.73Z"
            />
          </svg>
        </label>
      </div>
    </div>
  </NuxtLayout>
</template>

<style>
html,
body {
  height: 100%;
  margin: 0;
  padding: 0;
}

#__nuxt {
  min-height: 100vh;
}
</style>
